对话框
遇到的问题
题目要求实现:界面有两个按钮,点击时分别弹出提示对话框和登录对话框,其中登录对话框要求用户输入UserId和Password,如果UserId和Password不是“abc”、“123”,则使用Toast提示错误,否则提示成功。
在此过程中遇到的问题:
1、将LoginActivity中的控件显示在对话框中时出现了问题。
2、经过编辑之后出现了预期的效果。但是还有不足之处:点击对话框之外的地方对话框会消失;如果输入错误给出提示信息之后对话框也会消失,不能继续操作。
分析与理解
1、将LoginActivity中的控件显示在对话框中应该是:
new AlertDialog.Builder(LoginActivity.this)
2、Android系统中的dialog默认是非模态的,只有设置为模态的才可以解决出现“点击对话框之外的地方对话框会消失”这个问题。而这个方法也很简单就是.setCancelable(true);将true该false即可解决这个问题。
3、出现“输入错误给出提示信息之后对话框也会消失,不能继续操作”的解决方法:需要调用对话框的dismiss()方法
知识点小结
1、提示对话框一般包含三部分,标题、内容和按钮。按钮包括确定、取消和忽略,其中按钮标题可以修改。用户可以根据需要自行添加按钮,添加方法为:
setPositiveButton():添加“确定”按钮,表示接受或确定对话框内容。
setNegativeButton():添加“取消”按钮,表示不接受或取消对话框内容。
setNeutralButton():添加“忽略”按钮,表示忽略操作。
2、Toast的创建:
方法一:makeText (Context context, int resId, int duration)
方法二:makeText(Context context, CharSequence text, int duration)
参数:第一个参数context表示:toast显示在哪个上下文,通常是当前Activity。
第三个参数duration表示:toast显示的时间。Toast默认有LENGTH_SHORT和LENGTH_LONG两常量,分别表示短时间显示和长时间显示。也可以自己设定时间,注意它的时间单位是:毫秒
对于第二个参数可以是字符串也可以是从资源文件string.xml 里面取得的提示信息 。
// 创建toast对象,并显示.第二个参数是字符串
Toast.makeText(MainActivity.this, "这是提示信息", Toast.LENGTH_LONG).show();
//第二个参数是从资源文件string.xml 里面取提示信息
Toast.makeText(MainActivity.this,getString(R.string.hello) , Toast.LENGTH_SHORT).show();